def subsequences(s, index=0, current=''):  
    ret = []  
    # 基准情况：处理完所有字符，将当前子序列添加到结果列表中  
    if index == len(s):  
        if current:  # 只添加非空子序列  
            ret.append(current)  
        return ret  
      
    # 不包含当前字符，递归调用下一个字符  
    ret += subsequences(s, index + 1, current)  
      
    # 包含当前字符，递归调用下一个字符  
    ret += subsequences(s, index + 1, current + s[index])  
      
    return ret  
  
# 自定义排序函数  
def custom_sort(seq):  
    return (len(seq), seq)  
  
# 测试和结果  
result = subsequences('abcd')  
result.sort(key=custom_sort)  # 使用自定义排序函数 
for seq in result:  
    print(seq)